// getScreenCapture()//获取截图权
// denglu()
// startGameTask()
// var jt = images.captureScreen()
// var clip = images.clip(jt, 526, 1044, 23, 24);
// var resize=images.resize(clip, [69, 72])
// images.save(resize, "/sdcard/" + random(0, 10000000) + ".jpg", "jpg", 100);

// let ocr=paddle.ocr(resize,4,false);
// logRecord(JSON.stringify(ocr))



/**
 * 开始游戏任务
 */
function startGameTask() {

    logRecord("等待进入游戏首页")
    while (true) {
        sleep(OPT_TIME)
        if (isHome()) {
            logRecord("进入游戏主页")
            break
        }
    }

    logRecord("查看军务信息")
    click(94, 1095)
}



/**
 * 是否主页面判定
 */
function isHome() {
    if (isImage("guojia.png")) {
        return true
    } else {
        return false
    }
}

/**
 * 是否有军务
 */
function isJunWu() {
    if (isImage("yesjunwu.png")) {
        return true
    } else {
        return false
    }
}

/**
 * 找到图并且点击 
 * @param {本地图地址} imageUrl 
 * @returns true|false
 */
function clickImage(imageUrl) {
    var p = isImage(imageUrl)
    if (p) {
        click(p.x, p.y)
        return true
    } else {
        logRecord("没找到对应图像")
        return false
    }
}

/**
 * 找到图是否存在
 * @param {本地图地址} imageUrl 
 * @returns true|false
 */
function isImage(imageUrl) {
    var jt = images.captureScreen()
    // images.save(jt, "/sdcard/" + random(0, 10000000) + ".jpg", "jpg", 100);
    //读取本地图片
    var img = images.read(ROOT_URL + imageUrl)
    //判断图片是否加载成功
    if (!img) {
        logRecord("没有该图片");
        exit();
    }
    var p = images.findImage(jt, img)
    if (p) {
        return p
    } else {
        return false
    }
}

/**
 * 
 * @param {输出日志} str 
 */
function logRecord(str) {
    toast(str)
}

function getScreenCapture() {
    let Thread = threads.start(function () {
        if (auto.service != null) {
            let Allow = textMatches(/(允许|立即开始|统一)/).findOne(10 * 1000);
            if (Allow) {
                Allow.click();
            }
        }
    });
    if (!requestScreenCapture()) {
        log("请求截图权限失败");
        return false;
    } else {
        Thread.interrupt()
        log("已获得截图权限");
        return true;
    }
}


function denglu() {
    launchApp("霸业");
    sleep(8000)
    logRecord('霸业已打开');
    clickImage("gb.png")//尝试关闭弹窗
    sleep(OPT_TIME)
    if (isExist("开始游戏")) {

    } else {
        let p = isImage("tongyi.png")
        if (p != undefined) {
            logRecord("点击同意")
            clickImage("tongyi.png")
            sleep(3000)
        }
        logRecord(className("android.widget.TextView").text("手机验证登录").exists())
        if (className("android.widget.TextView").text("手机验证登录").exists()) {
            text("帐号登录").click()
            sleep(OPT_TIME)
        }
        className("android.widget.EditText").findOne().setText(userId)
        sleep(OPT_TIME)
        id("com.sqw.sgby.bytaptap:id/et_common_password").findOne().setText(password)
        sleep(OPT_TIME)
        text("登录").findOne().click()
        sleep(OPT_TIME)
        if (text("登录").exists()) {
            // let ty = isImage(ROOT_URL + "tongyigouxuan.png")
            // if (ty != undefined) {
            //     logRecord("点击同意")
            //     id("com.sqw.sgby.bytaptap:id/btn_common_check").findOne().click()
            //     sleep(OPT_TIME)
            // }else{
            //     logRecord("已同意协议")
            // }

            id("com.sqw.sgby.bytaptap:id/btn_common_check").findOne().click()
            sleep(OPT_TIME)
            text("登录").findOne().click()
        }
        sleep(5000)
        clickImage("gb.png")
        sleep(OPT_TIME)
    }
    click(535, 928)
    sleep(OPT_TIME)
    sleep(OPT_TIME)
    clickCharEx_paddle("大好河山", true, 0, true)
    sleep(OPT_TIME)
    clickCharEx_paddle("开始游戏", true, 0, true)
}


/**
OCR识图并点击（paddle）
*/
function clickCharEx_paddle(content, isDimFind, index, isClick, offsetX, offsetY, milliSecond) {
    if (!milliSecond) { milliSecond = 1000 };
    if (!index) { index = 0 };
    if (!offsetX) { offsetX = 0 };
    if (!offsetY) { offsetY = 0 };
    let result = false;
    let img = captureScreen();
    if (img) {
        let start = new Date();
        let res = paddle.ocr(img);
        logRecord('OCR识别耗时：' + (new Date() - start) + 'ms');
        if (res && res.length > 0) {
            for (let i = 0; i < res.length; i++) {
                let ocrResult = res[i];
                // logRecord(ocrResult);

                if (isDimFind && ocrResult.words.indexOf(content) != -1) {
                    logRecord("模糊找到");
                    logRecord(ocrResult.words)
                    result = true;
                } else if (content === ocrResult.words) {
                    logRecord("精确找到");
                    logRecord(ocrResult.words)
                    result = true;
                } else {

                }

                if (result) {
                    if (isClick) {
                        logRecord("点击")
                        click(ocrResult.bounds.left + parseInt((ocrResult.bounds.right - ocrResult.bounds.left) / 2) + offsetX, ocrResult.bounds.top + parseInt((ocrResult.bounds.bottom - ocrResult.bounds.top) / 2) + offsetY);
                        logRecord(ocrResult.bounds.left + parseInt((ocrResult.bounds.right - ocrResult.bounds.left) / 2) + offsetX + "," + ocrResult.bounds.top + parseInt((ocrResult.bounds.bottom - ocrResult.bounds.top) / 2) + offsetY)
                    }

                    break;
                }
            }
        }

        img.recycle();  // 回收图片
    } else {
        logRecord("截图失败");
    }

    if (result) {
        sleep(milliSecond);
    };
    return result;
};


function isExist(str) {
    let img = captureScreen();
    if (img) {
        let start = new Date()
        let result = paddle.ocr(img);
        log('OCR识别耗时：' + (new Date() - start) + 'ms')

        if (result && result.length > 0) {
            for (let i = 0; i < result.length; i++) {
                let ocrResult = result[i]
                logRecord(ocrResult.words)
                if (ocrResult.words == str) {
                    return true
                }
            }
        }

        // 回收图片
        img.recycle();
    } else {
        log("截图失败");
    }
    return false
}